package com.ruoyi.record.service.impl;

import java.util.Arrays;
import java.util.List;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.basic.domain.BasicImage;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.stereotype.Service;
import com.ruoyi.record.mapper.RecordFileMapper;
import com.ruoyi.record.domain.RecordFile;
import com.ruoyi.record.service.IRecordFileService;
import com.ruoyi.common.core.text.Convert;

/**
 * 文件管理Service业务层处理
 * 
 * @author ruoyi
 * @date 2024-11-19
 */
@Service
public class RecordFileServiceImpl extends ServiceImpl<RecordFileMapper, RecordFile> implements IRecordFileService
{
    /**
     * 查询文件管理
     * 
     * @param fileId 文件管理主键
     * @return 文件管理
     */
    @Override
    public RecordFile selectRecordFileByFileId(Long fileId)
    {
        return baseMapper.selectRecordFileByFileId(fileId);
    }

    /**
     * 查询文件管理列表
     * 
     * @param recordFile 文件管理
     * @return 文件管理
     */
    @Override
    public List<RecordFile> selectRecordFileList(RecordFile recordFile)
    {
        return baseMapper.selectRecordFileList(recordFile);
    }

    /**
     * 新增文件管理
     * 
     * @param recordFile 文件管理
     * @return 结果
     */
    @Override
    public int insertRecordFile(RecordFile recordFile)
    {
        recordFile.setCreateTime(DateUtils.getNowDate());
        return baseMapper.insert(recordFile);
    }

    /**
     * 修改文件管理
     * 
     * @param recordFile 文件管理
     * @return 结果
     */
    @Override
    public int updateRecordFile(RecordFile recordFile)
    {
        recordFile.setUpdateTime(DateUtils.getNowDate());
        return baseMapper.updateById(recordFile);
    }

    /**
     * 批量删除文件管理
     * 
     * @param fileIds 需要删除的文件管理主键
     * @return 结果
     */
    @Override
    public int deleteRecordFileByFileIds(String fileIds)
    {
        return baseMapper.deleteBatchIds(Arrays.asList(Convert.toLongArray(fileIds)));
    }

    /**
     * 删除文件管理信息
     * 
     * @param fileId 文件管理主键
     * @return 结果
     */
    @Override
    public int deleteRecordFileByFileId(Long fileId)
    {
        return baseMapper.deleteById(fileId);
    }

    /**
     * 根据文件名查询文件是否存在
     * @param fileName
     * @param recordFile
     * @return
     */
    @Override
    public boolean checkRecordFileByFileName(String fileName, RecordFile recordFile) {
        LambdaQueryWrapper<RecordFile> queryWrapper = new LambdaQueryWrapper<RecordFile>();
        queryWrapper.like(RecordFile::getFileUrl, fileName);
        if(StringUtils.isNotNull(recordFile.getFileId())) {
            queryWrapper.ne(RecordFile::getFileId, recordFile.getFileId());
        }
        Integer count = baseMapper.selectCount(queryWrapper);
        if(count > 0) {
            return true;
        }else{
            return false;
        }
    }
}
